package kn.pulldata.req;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 消息推送
 *
 * @TableName info_push_data
 */
@Data
public class InfoPushData implements Serializable {

    /**
     *  用户标识集合 WDG-orgId-userId
     */
    List<String> userFlagList;
    /**
     * 主键id
     */
    private Integer id;

    /**
     * 数据id
     */
    private Long dataId;

    /**
     * 数据类型（0境内 1境外 2=监测 3=热榜 4境内热点）
     */
    private Integer dataType;

    /**
     * 调性状态（0正面 1中性 2负面)
     */
    private String tonalState;

    /**
     * 是否预警(0未预警,1已预警)
     */
    private Integer isEarlyWarn;

    /**
     * 是否敏感（0不敏感  1敏感）
     */
    private Integer sensitives;

    /**
     * 标题信息
     */
    private String title;

    /**
     * 媒体环节
     */
    private String mediaLink;

    /**
     * 媒体属性
     */
    private String mediaAttribute;

    /**
     * 媒体级别
     */
    private String mediaLevel;

    /**
     * 事件分类
     */
    private String eventClass;

    /**
     * 媒体类型
     */
    private String mediaType;

    /**
     * 语言类型
     */
    private String languageType;

    /**
     * 媒体归属
     */
    private String mediaOwnership;

    /**
     * 媒体阵营
     */
    private String mediaCamp;

    /**
     * 来源
     */
    private String source;

    /**
     * 作者
     */
    private String sourceAuthor;

    /**
     * 摘要
     */
    private String abstracts;

    /**
     * 时间
     */
    @TableField(value = "time", fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date time;

    /**
     * 理由
     */
    private String reason;

    /**
     * 榜单
     */
    private String hotList;

    /**
     * 方案名称
     */
    private String schemeName;

    /**
     * 发布时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date releaseTime;

    /**
     * 机构id
     */
    private Integer orgaId;

    /**
     * 机构类型
     */
    private Integer organType;

    /**
     * 监测类型 0
     */
    private Integer montype;

    /**
     * 用户id
     */
    private Integer userId;

    /**
     * 榜单数量
     */
    private Integer countNum;

    /**
     * 区域名称
     */
    private String areaName;

    /**
     * 榜单id
     */
    private Integer cityId;

    /**
     * 用户token信息
     */
    private String userTonken;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    private int total;

    private String website;
    /**
     * 监测方案id、
     */
    private Long monitorId;

    /**
     *  是否ia研判调性
     */
    private int  isAiTonalState;

    /**
     *  ai调性理由
     */
    private String  aiTonalStateReason;

    public String getPushMsg() {
        return "方案："+getSchemeName()+"\n"
               +"标题："+getTitle()+"\n"
                +"链接："+getWebsite()+"\n"
                +"摘要："+getAbstracts()+"\n"
                +"时间："+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(getReleaseTime()!=null?getReleaseTime():new Date()) +"\n"
                +"来源："+getSource()+"\n"
                +"作者："+getSourceAuthor()+"\n";
    }

    public Map<String,String> getPushJson(){
        HashMap<String, String> map = new HashMap<>();
        map.put("organId",getOrgaId().toString());
        map.put("content",getPushMsg());
        return map;
    }

}